package br.ufu.si.view;

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.border.MatteBorder;

import br.ufu.si.model.base.TipoServico;

public class Principal {

	private JFrame frame;
	private JButton btnJogo;
	private JButton btnJogador;
	private JButton btnSelecao;
	private JButton btnUniforme;
	private JButton btnMembro;
	private JButton btnDieta;
	private JButton btnOrcamento;

	/**
	 * Create the application.
	 */
	public Principal() {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame();
		frame.setBounds(100, 100, 805, 463);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);

		JPanel panel = new JPanel();
		panel.setBorder(new MatteBorder(1, 1, 1, 1, (Color) new Color(0, 0, 0)));
		panel.setBounds(10, 194, 769, 219);
		frame.getContentPane().add(panel);
		panel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));

		btnJogador = new JButton("Cadastro de Jogador");
		btnJogador.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				abrirServico(TipoServico.CadastroJogador);
			}
		});
		panel.add(btnJogador);
		btnJogador.setIcon(new ImageIcon(Principal.class
				.getResource("/br/ufu/si/view/images/jogador_48x48.png")));

		btnUniforme = new JButton("Cadastro de Uniforme");
		btnUniforme.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				abrirServico(TipoServico.CadastroUniforme);
			}
		});

		btnDieta = new JButton("Cadastro de Dieta");
		btnDieta.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				abrirServico(TipoServico.CadastroDieta);
			}
		});
		btnDieta.setIcon(new ImageIcon(Principal.class
				.getResource("/br/ufu/si/view/images/dieta_48x48.png")));
		panel.add(btnDieta);
		panel.add(btnUniforme);
		btnUniforme.setIcon(new ImageIcon(Principal.class.getResource("/br/ufu/si/view/images/uniforme_48x48.png")));

		btnSelecao = new JButton("Cadastro de Sele\u00E7\u00E3o");
		btnSelecao.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				abrirServico(TipoServico.CadastroSelecao);
			}
		});
		panel.add(btnSelecao);
		btnSelecao.setIcon(new ImageIcon(Principal.class
				.getResource("/br/ufu/si/view/images/selecao_48x48.png")));

		btnJogo = new JButton("Cadastro de Jogo");
		btnJogo.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				abrirServico(TipoServico.CadastroJogo);
			}
		});

		btnMembro = new JButton("Cadastro de Membro");
		btnMembro.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				abrirServico(TipoServico.CadastroMembro);
			}
		});
		btnMembro.setIcon(new ImageIcon(Principal.class
				.getResource("/br/ufu/si/view/images/membro_48x48.png")));
		panel.add(btnMembro);
		panel.add(btnJogo);
		btnJogo.setIcon(new ImageIcon(Principal.class
				.getResource("/br/ufu/si/view/images/jogo_48x48.png")));

		btnOrcamento = new JButton("Cadastro de Or\u00E7amento");
		btnOrcamento.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				abrirServico(TipoServico.CadastroOrcamento);
			}
		});
		btnOrcamento.setIcon(new ImageIcon(Principal.class
				.getResource("/br/ufu/si/view/images/orcamento_48x48.png")));
		panel.add(btnOrcamento);

		JPanel panel_1 = new JPanel();
		panel_1.setBounds(10, 5, 769, 175);
		frame.getContentPane().add(panel_1);
		panel_1.setLayout(null);

		JLabel lblNewLabel = new JLabel("World Cup Manager");
		lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel.setBackground(Color.WHITE);
		lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 58));
		lblNewLabel.setBounds(0, 0, 769, 175);
		panel_1.add(lblNewLabel);
	}

	public JButton getBtnJogo() {
		return btnJogo;
	}

	public JButton getBtnJogador() {
		return btnJogador;
	}

	public JButton getBtnSelecao() {
		return btnSelecao;
	}

	public JButton getBtnUniforme() {
		return btnUniforme;
	}

	public JButton getBtnMembro() {
		return btnMembro;
	}

	public JButton getBtnOrcamento() {
		return btnOrcamento;
	}

	public JFrame getFrame() {
		return frame;
	}

	private void abrirServico(TipoServico tipoServico) {
		frame.setVisible(false);
		
		Crud cadastro = null;
		
		switch (tipoServico) {
		case CadastroJogador:
			cadastro = new CadastroJogador(this);
			break;
		case CadastroUniforme:
			cadastro = new CadastroUniforme(this);
			break;
		case CadastroSelecao:
			cadastro = new CadastroSelecao(this);
			break;
		case CadastroJogo:
			cadastro = new CadastroJogo(this);
			break;
		case CadastroMembro:
			cadastro = new CadastroMembro(this);
			break;
		case CadastroDieta:
			cadastro = new CadastroDieta(this);
		case CadastroOrcamento:
			cadastro = new CadastroOrcamento(this);
		default:
			break;
		}
		
		if(cadastro != null){
			cadastro.getFrame().setVisible(true);
			cadastro.iniciarCrud();
		}
	}
	
}
